public class Date {
    public int year;
    public int month;
    public int day;

//    public void setDate(int y,int m,int d) {
//        year = y;
//        month = m;
//        day = d;
//    }
//    //输出正确 年：2024 月：7 日：15

    //       系统会把Date this作为一个隐藏的参数传过来
    public void setDate(/*Date this,*/int year,int month,int day) {
//        year = year;
//        month = month;
//        day = day;
//        //输出  年：0 月：0 日：0
//        //只访问了局部变量的year month day，没有影响实例变量属性的值

        this.year = year;
        this.month = month;
        this.day = day;
        //输出 年：2024 月：7 日：15
        //this表示当前对象的引用
        //如果访问的是当前对象的属性 建议大家习惯使用this
        //谁调用了当前的setDate方法 谁就是this

    }
    //通过this可以访问当前对象的成员属性/成员变量【静态的成员变量不支持！！】
    //this只能在成员方法中使用

    public void printDate() {
//        System.out.println("年："+year+" 月："+month+" 日："+day);
        System.out.println("年："+this.year+" 月："+this.month+" 日："+this.day);
    }

    public static void main(String[] args) {
        Date date = new Date();
        date.setDate(2024,7,15);
        date.printDate();
        System.out.println("=========================");
        Date date2 = new Date();
        //setDate方法里面的this 就是谁调用过了这个方法
        //date2调用了setDate方法 this.year就是指date2里的year
        date2.setDate(2003,6,16);
        date2.printDate();
    }

}
